package com.heima.wemedia.service.impl;

import com.heima.feign.article.IArticleClient;
import com.heima.model.common.dtos.PageResponseResult;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.common.enums.AppHttpCodeEnum;
import com.heima.model.wemedia.dtos.WmCommentDto;
import com.heima.utils.thread.WeMediaThreadLocalUnit;
import com.heima.wemedia.service.WmStatisticsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class WmStatisticsServiceImpl implements WmStatisticsService {
    @Autowired
    private IArticleClient client;
    /**
     * 统计一段时间内的文章的信息
     *
     * @param dto
     * @return
     */
    @Override
    public ResponseResult newsDimension(WmCommentDto dto) {
        //1、参数校验
        if (dto == null || dto.getBeginDate() == null || dto.getEndDate() == null) {
            return ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
        }
        //得出当前用户id
        Integer userId = WeMediaThreadLocalUnit.get();
        dto.setUserId(userId);
        //2、远程调用文章微服务，查询信息
        return client.newsDimension(dto);
    }

    /**
     * 分页展示文章列表，展示当前时间范围内的具体文章阅读、评论、收藏的数量。
     *
     * @param dto
     * @return
     */
    @Override
    public PageResponseResult newsPage(WmCommentDto dto) {
        //1、参数校验
        if (dto == null || dto.getBeginDate() == null || dto.getEndDate() == null) {
            return (PageResponseResult) ResponseResult.errorResult(AppHttpCodeEnum.PARAM_INVALID);
        }
        dto.checkParam();
        //得出当前用户id
        Integer userId = WeMediaThreadLocalUnit.get();
        dto.setUserId(userId);
        //2、远程调用问文章微服务
        return client.newsPage(dto);
    }
}
